A cyclic redundancy check (CRC) is a short fixed-length datum (checksum) error-detecting code for an arbitrary data packet/frame commonly used in digital networks and storage devices for data frame protection and transmission to detect accidental changes to raw data. Each data frame entering these systems gets a short CRC value calculated and attached to it, based on the remainder of a polynomial division of its contents. The CRC value is then attached to and accompanies the data frame during its transmission and/or storage. On retrieval, the calculation of the CRC is repeated, and corrective action can be taken against presumed corruption of the data frame or the received CRC itself if the CRC values do not match.
CRCs are so called because the check (data verification) value is a redundancy (i.e., it expands the data frame without adding information) and the calculation is based on cyclic codes. CRCs are popular because they are simple to implement in binary hardware, easy to analyze mathematically, and particularly good at detecting common errors caused by noise in transmission channels. Because the check value has a fixed length, the CRC can also be used fora hash index and database lookup.
In the context of high-speed network devices and switches, each frame or packet of data can be divided and processed in multiple physical planes of the devices in parallel, wherein each physical plane may have its associated design logic circuitry used to calculate its CRC value. Since the CRC value is calculated on a per-frame/packet basis, the values from the physical planes need to be combined together as one CRC value for the entire data frame. As data throughput of the network devices is getting higher, hardware devices are increasing internal parallel data width for processing, i.e., the level of parallelism is increasing. It is thus desirable to have the CRC values of the data frames calculated efficiently irrespective of the level of parallelism.
The foregoing examples of the related art and limitations related therewith are intended to be illustrative and not exclusive. Other limitations of the related art will become apparent upon a reading of the specification and a study of the drawings.